1. Technical Field
The invention relates generally to assigning device identifiers over a network, and more specifically, to a robust solution for centrally assigning a device identifier and verifying that a device has received the assigned device identifier.
2. Related Art
Devices are increasingly sending messages between each other over computer networks. In typical messaging systems, a source computer sends a message to a destination computer, and the destination computer sends an acknowledgment back to the source computer. While this messaging scheme is sufficient for most messaging requirements, it poses problems when critical data is being transmitted in an unreliable messaging environment. For example, wireless devices are increasingly being used to access computer networks. Users seek to use diverse wireless devices such as handheld devices, mobile telephones, pagers, personal data assistants, etc. to access computer networks such as the Internet or a company network.
Many wireless devices do not have a readily accessible device identifier and/or other communications related information for use in communicating over a network. Further, device identifiers are often used to centrally manage devices. In this case, the device identifier cannot change for the physical device. As a result, changeable information such as a network address and/or a hostname often cannot be used. Assigning a device identifier to the wireless devices poses several problems. For example, the device identifier may be a long series of unrelated numbers and/or letters that are difficult for a user to correctly type in at the device. Alternatively, when the device identifier is generated by the device, it is difficult to ensure that the device identifier is unique. In either case, the server cannot manage the device before it initially connects to the network. As a result, it is desirable to generate device identifiers at a central location such as a server, and communicate a device identifier to a new device.
Unfortunately, managing device identifiers at a central location can require significant resources. Further, only a limited number of device identifiers are available for a network. As a result, it is important that a device identifier marked as being “used” at the central location is actually being used by the device. To date, communications with wireless devices remains highly unreliable. For example, wireless devices frequently lose their communication link or temporarily lose power. Further, messages are often lost due to noise in the wireless environment. For most types of messages, the fact that a message is missed is relatively unimportant. In a typical messaging system, the message transmission is merely retried after a certain timeout period. However, when the missed message includes an assigned device identifier, that device identifier may be improperly marked as “in use” even though it failed to be placed in actual use. As a result, numerous improperly marked device identifiers can accumulate over time. The unused device identifiers can degrade system performance and result in all device identifiers being prematurely marked as in use.
In light of this, a need exists for an improved solution for centrally assigning a device identifier to a device. In particular, a need exists for a method, system, and program product for assigning device identifiers from a server that increases the likelihood that a device is actually using the device identifier before it is marked as in use at the server.